package com.example.waternetwork.api.supervision.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 水库调度方案基础信息表
 * </p>
 */
@Getter
@Setter
@ToString
@TableName("supervision.base_reservoir_dispatch_plan")
@Schema(name = "BaseReservoirDispatchPlan", description = "水库调度方案基础信息实体")
public class BaseReservoirDispatchPlan implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "自定义主键")
    @TableId("id")
    private Long id;

    @Schema(description = "水库编码")
    @TableField("res_code")
    private String resCode;

    @Schema(description = "方案编码")
    @TableField("code")
    private String code;

    @Schema(description = "方案名称")
    @TableField("name")
    private String name;

    @Schema(description = "方案制作时间")
    @TableField("create_time")
    private LocalDateTime createTime;

    @Schema(description = "方案制作人")
    @TableField("create_user")
    private String createUser;

    @Schema(description = "计算开始时间")
    @TableField("start_time")
    private LocalDateTime startTime;

    @Schema(description = "计算结束时间")
    @TableField("end_time")
    private LocalDateTime endTime;

    @Schema(description = "调度模式（如规则调度、指令调度、开度调度、最高水位控制、最大流量控制等）")
    @TableField("dispatch_mode")
    private String dispatchMode;

    @Schema(description = "预报起始时间（即调度开始时间）")
    @TableField("forecast_time")
    private LocalDateTime forecastTime;

    @Schema(description = "推送时间")
    @TableField("push_time")
    private LocalDateTime pushTime;

    @Schema(description = "备注")
    @TableField("remark")
    private String remark;
}
